.TH std::optional::operatorbool,std::optional::has_value 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::optional::operatorbool,std::optional::has_value \- std::optional::operatorbool,std::optional::has_value

.SH Synopsis
   constexpr explicit operator bool() const noexcept;  \fI(since C++17)\fP
   constexpr bool has_value() const noexcept;          \fI(since C++17)\fP

   Checks whether *this contains a value.

.SH Parameters

   \fI(none)\fP

.SH Return value

   true if *this contains a value, false if *this does not contain a value.

.SH Example


// Run this code

 #include <optional>
 #include <iostream>

 int main()
 {
     std::cout << std::boolalpha;

     std::optional<int> opt;
     std::cout << opt.has_value() << '\\n';

     opt = 43;
     if (opt)
         std::cout << "value set to " << opt.value() << '\\n';
     else
         std::cout << "value not set\\n";

     opt.reset();
     if (opt.has_value())
         std::cout << "value still set to " << opt.value() << '\\n';
     else
         std::cout << "value no longer set\\n";
 }

.SH Output:

 false
 value set to 43
 value no longer set
